package net.hn.hnms.biz.plan.group.service;

import cn.hutool.core.lang.tree.Tree;
import net.hn.hnms.biz.plan.domain.repertoryInfo;
import net.hn.hnms.biz.plan.request.*;
import net.hn.hnms.biz.plan.vo.*;
import net.hn.hnms.biz.plan.request.*;
import net.hn.hnms.biz.plan.vo.*;

import java.util.List;
import java.util.Map;

public interface GroupService {

    int insertSale(String date) throws Exception;

    int insertOutput(String date) throws Exception;


    int insertFootage(String date) throws Exception;

    int getMonthlyAssessmentRanking() throws Exception;
    int getEfficientTransmission() throws Exception;

    List<ExecutionCostVO> selectExecutionCostTotalByCompanyCodeOrName(ExecutionCostReq planMining );

    List<ExecutionWashingVO> selectExecutionWashingTotalByCompanyCodeOrName(ExecutionWashingReq planMining );

    List<PlanDrivageVO> selectDrivageTotalByCompanyCodeOrName(PlanDrivageReq planMining );

    List<PlanWashingVO> selectWashingTotalByCompanyCodeOrName(PlanWashingReq planMining );

    List<PlanOtherVO> selectOtherTotalByCompanyCodeOrName(PlanOtherReq planMining );

    List<DimMiningFaceVO> selectDimMiningFaceTotalByCompanyCodeOrName(DimMiningFaceReq planMining );

    List<DimDrivageFaceVO> selectDimDrivageFaceTotalByCompanyCodeOrName(DimDrivageFaceReq planMining );

    List<PlanOutputVO> selectPlanOutputTotalByCompanyCodeOrName(PlanOutputReq planMining );

    List<ExecutionFootageOutputVO> selectFootageOutputTotalByCompanyCodeOrName(ExecutionFootageOutputReq planMining );

    List<ExecutionOtherVO> selectExecutionOtherTotalByCompanyCodeOrName(ExecutionOtherReq planMining );

    List<PlanMiningVO> selectMiningTotalByCompanyCodeOrName(PlanMiningReq planMining );

    List<Tree<Integer>> selectDimMiningFaceName(DimMiningFaceReq planMining );

    CockpitSaleVo getGroupYield(SaleAnalyseReq req);
    List<CockpitSaleVo> planVersusPractice(SaleAnalyseReq req);

    List<SaleAnalyseVo> variationTrend(SaleAnalyseReq req);

    Map<String,List<repertoryInfo>> inventory();

}
